Zugriff auf Außenhandelsdaten
In der Lieferung haben Sie kaum Möglichkeiten, auf die Außenhandelsdaten zuzugreifen. Wir zeigen Ihnen jedoch eine Möglichkeit des Zugriffs. Das Lesen der Daten ist mittels Funktionsbaustein einfach, das Verändern erfordert jedoch ein trickreicheres Vorgehen…
In diesem Fall stellen wir Ihnen Coding vor, mit dem Sie aus der Routine USEREXIT_MOVE_FIELD_TO_LIPS die Außenhandelsdaten einer Position ändern können. Falls diese Position keine Außenhandelsdaten haben sollte, so kann dies jedoch erzwungen werden.
Der Grund hierfür könnte sein, dass die Ware nicht an den Warenempfänger verschickt wird, sondern ein Handelsbüro im Inland, dass die Waren weiter ins Ausland versendet. Da der Warenempfänger im Inland ist, werden keine Außenhandelsdaten angelegt.
Das folgende Coding gilt für das Release 4.6C.
ACHTUNG: Bitte beachten Sie, dass wir keine Garantie für das hundertprozentige Funktionieren geben können und nicht für Fehler haften! Bitte testen Sie deswegen Ihre Prozesse ausreichend, um sicherzustellen, dass diese Routine in Ihrem System verwendet werden kann!!
*———————————————————————-* * Aufruf aus USEREXIT_MOVE_FIELD_TO_LIPS
*———————————————————————-*
* Ändern der Statistischen Warennummer der Außenhandelsdaten
*———————————————————————-*
*– Variablendeklaration
DATA zxt_xlips LIKE xlips OCCURS 0 WITH HEADER LINE.
DATA zxl_eipo LIKE eipo.
DATA zxl_xeipo LIKE eipovb.
DATA zxt_xeipo LIKE eipovb OCCURS 0 WITH HEADER LINE.
DATA zxv_exist TYPE c.
DATA zxl_eipo_old LIKE eipo.
DATA zxl_eipo_dl LIKE eipo.
DATA zxl_item_exist.
*– Feldsymbole
FIELD-SYMBOLS <eipo> STRUCTURE eipo DEFAULT zxl_eipo.
FIELD-SYMBOLS <xeipo> STRUCTURE eipovb DEFAULT zxl_xeipo.
FIELD-SYMBOLS <teipo> TYPE ANY TABLE.
*– Aufruf beim Anlegen oder Ändern einer Position
IF ( t180-trtyp = ‘H’ OR t180-trtyp = ‘V’ ) AND NOT lips IS INITIAL.
UNASSIGN <teipo>.
*– Lesend der Exportdaten
CALL FUNCTION ‘EXPIMP_ITEM_DATA_READ’
EXPORTING
exnum = likp-exnum
expos = lips-posnr
IMPORTING
e_line_item_exists = zxl_item_exist.
IF zxl_item_exist = space.
*– Keine Exportdaten vorhanden: Füllen
PERFORM lips_fuellen_export(sapfv50p).
ELSE.
*– Exportdaten sind vorhanden: Bereitstellen
PERFORM eipo_bereitstellen(saplv50e).
ENDIF.
*– Dirty Assign auf Aussenhandelspositionsdaten in FUGR V50E
ASSIGN (‘(SAPLV50E)XEIPO[]’) TO <teipo>.
*– Exportdaten bearbeiten
IF <teipo> IS ASSIGNED.
LOOP AT <teipo> ASSIGNING <xeipo>.
CHECK <xeipo>-expos = lips-posnr.
*– setzen der Stat. Warennummer
<xeipo>-stawn = ‘Tricktresor’.
<xeipo>-herkl = ‘FR’.
<xeipo>-herkr = ’02’.
<xeipo>-exprf = ‘10000’.
<xeipo>-exart = ’11’.
EXIT.
ENDLOOP.
ENDIF.
*– Falls noch keine EXNUM im Lieferkopf steht, dies nun nachholen:
READ TABLE xlikp WITH KEY vbeln = likp-vbeln.
IF sy-subrc = 0 AND xlikp-exnum IS INITIAL.
xlikp-exnum = likp-exnum.
MODIFY xlikp INDEX sy-tabix.
ENDIF.
ENDIF.
- Interview mit Björn Schulz (Software-Heroes.com) - 3. September 2024
- Daten aus ALV ermitteln - 3. September 2024
- So lange es den SAPGUI noch gibt… - 27. Juni 2024